var canJump = function (nums) {
  let len = nums.length;
  let max = 0;  // 记录当前能到达的最远位置
  for (let i = 0; i < len; i++) {
    if (i <= max) {  // 当前位置可到达
      max = Math.max(max, i + nums[i]);  // 更新最远可达位置
      if (max >= len - 1) {  // 已到达或超过终点
        return true;
      }
    }
  }
  return false;
};

let nums1 = [2, 3, 1, 1, 4]; // true
let nums2 = [3, 2, 1, 0, 4]; // false

console.log(canJump(nums2));
